using CodeSaude.Domain.Entities;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace CodeSaude.Infrastructure.Data.EntityConfig
{
    public class RegistroContadorMap : EntityTypeConfiguration<RegistroContador>
    {
        public RegistroContadorMap()
        {
            // Primary Key
            this.HasKey(t => new { t.RegistroContadorId, t.id_especialidade });

            // Properties
            this.Property(t => t.RegistroContadorId)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            this.Property(t => t.id_especialidade)
                .HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);

            // Table & Column Mappings
            this.ToTable("registro_contador");
            this.Property(t => t.RegistroContadorId).HasColumnName("id_registro");
            this.Property(t => t.id_especialidade).HasColumnName("id_especialidade");
            this.Property(t => t.contador_LAB).HasColumnName("contador_LAB");
            this.Property(t => t.contador_RAD).HasColumnName("contador_RAD");
            this.Property(t => t.contador_ECG).HasColumnName("contador_ECG");
            this.Property(t => t.contador_MED).HasColumnName("contador_MED");
            this.Property(t => t.contador_CUD).HasColumnName("contador_CUD");
            this.Property(t => t.contador_DIE).HasColumnName("contador_DIE");
            this.Property(t => t.contador_OXG).HasColumnName("contador_OXG");
            this.Property(t => t.contador_PCD).HasColumnName("contador_PCD");
            this.Property(t => t.concluidos_LAB).HasColumnName("concluidos_LAB");
            this.Property(t => t.concluidos_RAD).HasColumnName("concluidos_RAD");
            this.Property(t => t.concluidos_ECG).HasColumnName("concluidos_ECG");
            this.Property(t => t.concluidos_MED).HasColumnName("concluidos_MED");
            this.Property(t => t.concluidos_CUD).HasColumnName("concluidos_CUD");
            this.Property(t => t.concluidos_DIE).HasColumnName("concluidos_DIE");
            this.Property(t => t.concluidos_OXG).HasColumnName("concluidos_OXG");
            this.Property(t => t.concluidos_PCD).HasColumnName("concluidos_PCD");

            // Relationships
            //this.HasRequired(t => t.Prontuario)
            //    .WithOptional(t => t.RegistroContador);
            

        }
    }
}
